const parseAndFormatNumber = (num: number | string): string => {
  const numParts = num.toString().split(".");
  numParts[0] = numParts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");

  return numParts.join(".");
  // 如果有小数点，就加上小数点，没有的就加上小数点和 00
  // return numParts.join('.') + (numParts[1] ? '' : '.00');
};

export const toLocaleString = (
  value: number | string,
  locale = "en-US"
): string | number => {
  if (typeof value === "number" && !Number.isNaN(value)) {
    return parseAndFormatNumber(value);
  } else if (typeof value === "string") {
    const number = Number(value);

    if (!Number.isNaN(number)) {
      return parseAndFormatNumber(number);
    }
  }

  return value;
};

/**
 * @description: 按照 指定时区(默认 GTM+7) 来格式化日期
 * @param {*} date 时间对象
 * @param {*} separator 是否自定义时间格式,默认不需要
 * @param {*} timeZone Asia/Shanghai 中国 Asia/Jakarta 印尼 https://www.zeitverschiebung.net/cn/city/1642911
 * console.log(`当前时间 (GMT+7): ${timeInGMT7()}`);
 * // 当前时间 (GMT+7): 2024/06/06 13:08:10
 */
export const formatToTimeZone = (
  date = new Date(),
  timeZone = "Asia/Jakarta",
  separator = "/"
) => {
  // 获取单独的日期部分
  const yearFormatter = new Intl.DateTimeFormat("en-US", {
    year: "numeric",
    timeZone: timeZone,
  });
  const monthFormatter = new Intl.DateTimeFormat("en-US", {
    month: "2-digit",
    timeZone: timeZone,
  });
  const dayFormatter = new Intl.DateTimeFormat("en-US", {
    day: "2-digit",
    timeZone: timeZone,
  });
  const weekFormatter = new Intl.DateTimeFormat("en-US", {
    weekday: "short",
    timeZone: timeZone,
  });

  const timeFormatter = new Intl.DateTimeFormat("en-US", {
    hour: "2-digit",
    minute: "2-digit",
    second: "2-digit",
    timeZone: timeZone,
    hour12: false, // 24小时制
  });

  // 格式化各个部分
  const year = yearFormatter.format(date);
  const month = monthFormatter.format(date);
  const day = dayFormatter.format(date);
  const week = weekFormatter.format(date);
  const time = timeFormatter.format(date);

  // 拼接结果
  if (separator) {
    return `${year}${separator}${month}${separator}${day} ${time}`;
  } else {
    return { year, month, day, week, time };
  }
};

// 1. 时间进度更新: 此时此刻
// const now = pageData.serverTime ? new Date(pageData.serverTime) : new Date();
// let nowGtm7 = now.getTime();
// // 1.1 抽奖开始 印尼上午 10 点的时间戳
// const localOffset = now.getTimezoneOffset();
// const gmt7Offset = -7 * 60; // GMT+7 时区的偏移（分钟）
// const offsetDifference = gmt7Offset - localOffset; // 计算时区差（分钟）
// nowGtm7 = nowGtm7 + offsetDifference * 60 * 1000; // 根据时区,计算当前 GTM +7 时区时间
// console.log(localOffset, "--localOffset-==", nowGtm7);

// // 计算
// const timeDifferenceFn = () => {
//   const startGtm8 = beginTime.value + offsetDifference * 60 * 1000; // 将 GTM+7 时间 <== 转换成 ==> GMT+8 活动开始时间
//   const endGtm8 = firstStageEndTime.value + offsetDifference * 60 * 1000; // 将 GTM+7 时间 <== 转换成 ==> GMT+8 活动结束时间

//   if (nowGtm7 < startGtm8) {
//     curTime.value = 0;
//   } else if (nowGtm7 >= startGtm8 && nowGtm7 <= endGtm8) {
//     curTime.value = nowGtm7 - startGtm8;
//   } else {
//     curTime.value = totalTime.value;
//   }
// };
